<template>
    <view class="wrap">
        <view class="u-border-left u-border-top inner-wrap">
            <view @tap="selectIcon(item.name)" class="u-icon-item u-border-bottom u-border-right" v-for="(item, index) in iconList" :key="index">
                <u-icon :name="item.name" size="40" color="#909399"></u-icon>
                <text class="u-icon-name">{{ item.name }}</text>
            </view>
        </view>
    </view>
</template>

<script lang="ts" setup>
import { ref } from 'vue';

const iconList = ref([
    {
        name: 'level'
    },
    {
        name: 'woman'
    },
    {
        name: 'man'
    },
    {
        name: 'arrow-left-double'
    },
    {
        name: 'arrow-right-double'
    },
    {
        name: 'chat'
    },
    {
        name: 'chat-fill'
    },
    {
        name: 'red-packet'
    },
    {
        name: 'red-packet-fill'
    },
    {
        name: 'order'
    },
    {
        name: 'checkbox-mark'
    },
    {
        name: 'arrow-up-fill'
    },
    {
        name: 'arrow-down-fill'
    },
    {
        name: 'backspace'
    },
    {
        name: 'photo'
    },
    {
        name: 'photo-fill'
    },
    {
        name: 'lock'
    },
    {
        name: 'lock-fill'
    },
    {
        name: 'lock-open'
    },
    {
        name: 'lock-opened-fill'
    },
    {
        name: 'hourglass'
    },
    {
        name: 'hourglass-half-fill'
    },
    {
        name: 'home'
    },
    {
        name: 'home-fill'
    },
    {
        name: 'fingerprint'
    },
    {
        name: 'cut'
    },
    {
        name: 'star'
    },
    {
        name: 'star-fill'
    },
    {
        name: 'share'
    },
    {
        name: 'share-fill'
    },
    {
        name: 'volume-up'
    },
    {
        name: 'volume-up-fill'
    },
    {
        name: 'volume-off'
    },
    {
        name: 'volume-off-fill'
    },
    {
        name: 'trash'
    },
    {
        name: 'trash-fill'
    },
    {
        name: 'rewind-right'
    },
    {
        name: 'rewind-right-fill'
    },
    {
        name: 'rewind-left'
    },
    {
        name: 'rewind-left-fill'
    },
    {
        name: 'shopping-cart'
    },
    {
        name: 'shopping-cart-fill'
    },
    {
        name: 'question'
    },
    {
        name: 'question-circle'
    },
    {
        name: 'question-circle-fill'
    },
    {
        name: 'plus'
    },
    {
        name: 'plus-circle'
    },
    {
        name: 'plus-circle-fill'
    },
    {
        name: 'tags'
    },
    {
        name: 'tags-fill'
    },
    {
        name: 'pause'
    },
    {
        name: 'pause-circle'
    },
    {
        name: 'pause-circle-fill'
    },
    {
        name: 'play-circle'
    },
    {
        name: 'play-circle-fill'
    },
    {
        name: 'map'
    },
    {
        name: 'map-fill'
    },
    {
        name: 'phone'
    },
    {
        name: 'phone-fill'
    },
    {
        name: 'list'
    },
    {
        name: 'list-dot'
    },
    {
        name: 'man-delete'
    },
    {
        name: 'man-add'
    },
    {
        name: 'man-add-fill'
    },
    {
        name: 'person-delete-fill'
    },
    {
        name: 'info'
    },
    {
        name: 'info-circle'
    },
    {
        name: 'info-circle-fill'
    },
    {
        name: 'minus'
    },
    {
        name: 'minus-circle'
    },
    {
        name: 'minus-circle-fill'
    },
    {
        name: 'mic'
    },
    {
        name: 'mic-off'
    },
    {
        name: 'grid'
    },
    {
        name: 'grid-fill'
    },
    {
        name: 'eye'
    },
    {
        name: 'eye-fill'
    },
    {
        name: 'eye-off'
    },
    {
        name: 'file-text'
    },
    {
        name: 'file-text-fill'
    },
    {
        name: 'edit-pen'
    },
    {
        name: 'edit-pen-fill'
    },
    {
        name: 'email'
    },
    {
        name: 'email-fill'
    },
    {
        name: 'download'
    },
    {
        name: 'checkmark'
    },
    {
        name: 'checkmark-circle'
    },
    {
        name: 'checkmark-circle-fill'
    },
    {
        name: 'clock'
    },
    {
        name: 'clock-fill'
    },
    {
        name: 'close'
    },
    {
        name: 'close-circle'
    },
    {
        name: 'close-circle-fill'
    },
    {
        name: 'calendar'
    },
    {
        name: 'calendar-fill'
    },
    {
        name: 'car'
    },
    {
        name: 'car-fill'
    },
    {
        name: 'bell'
    },
    {
        name: 'bell-fill'
    },
    {
        name: 'bookmark'
    },
    {
        name: 'bookmark-fill'
    },
    {
        name: 'attach'
    },
    {
        name: 'play-right'
    },
    {
        name: 'play-right-fill'
    },
    {
        name: 'play-left'
    },
    {
        name: 'play-left-fill'
    },
    {
        name: 'error'
    },
    {
        name: 'error-circle'
    },
    {
        name: 'error-circle-fill'
    },
    {
        name: 'wifi'
    },
    {
        name: 'wifi-off'
    },
    {
        name: 'skip-back-left'
    },
    {
        name: 'skip-forward-right'
    },
    {
        name: 'search'
    },
    {
        name: 'setting'
    },
    {
        name: 'setting-fill'
    },
    {
        name: 'volume'
    },
    {
        name: 'volume-fill'
    },
    {
        name: 'more-dot-fill'
    },
    {
        name: 'more-circle'
    },
    {
        name: 'more-circle-fill'
    },
    {
        name: 'bag'
    },
    {
        name: 'bag-fill'
    },
    {
        name: 'arrow-upward'
    },
    {
        name: 'arrow-downward'
    },
    {
        name: 'arrow-leftward'
    },
    {
        name: 'arrow-rightward'
    },
    {
        name: 'arrow-up'
    },
    {
        name: 'arrow-down'
    },
    {
        name: 'arrow-left'
    },
    {
        name: 'arrow-right'
    },
    {
        name: 'rmb'
    },
    {
        name: 'rmb-circle'
    },
    {
        name: 'rmb-circle-fill'
    },
    {
        name: 'thumb-up'
    },
    {
        name: 'thumb-up-fill'
    },
    {
        name: 'thumb-down'
    },
    {
        name: 'thumb-down-fill'
    },
    {
        name: 'coupon'
    },
    {
        name: 'coupon-fill'
    },
    {
        name: 'kefu-ermai'
    },
    {
        name: 'server-fill'
    },
    {
        name: 'server-man'
    },
    {
        name: 'scan'
    },
    {
        name: 'warning'
    },
    {
        name: 'warning-fill'
    },
    {
        name: 'google'
    },
    {
        name: 'google-circle-fill'
    },
    {
        name: 'chrome-circle-fill'
    },
    {
        name: 'ie'
    },
    {
        name: 'IE-circle-fill'
    },
    {
        name: 'github-circle-fill'
    },
    {
        name: 'android-fill'
    },
    {
        name: 'android-circle-fill'
    },
    {
        name: 'apple-fill'
    },
    {
        name: 'camera'
    },
    {
        name: 'camera-fill'
    },
    {
        name: 'pushpin'
    },
    {
        name: 'pushpin-fill'
    },
    {
        name: 'minus-square-fill'
    },
    {
        name: 'plus-square-fill'
    },
    {
        name: 'heart'
    },
    {
        name: 'heart-fill'
    },
    {
        name: 'reload'
    },
    {
        name: 'account'
    },
    {
        name: 'account-fill'
    },
    {
        name: 'minus-people-fill'
    },
    {
        name: 'plus-people-fill'
    },
    {
        name: 'integral'
    },
    {
        name: 'integral-fill'
    },
    {
        name: 'zhihu'
    },
    {
        name: 'zhihu-circle-fill'
    },
    {
        name: 'gift'
    },
    {
        name: 'gift-fill'
    },
    {
        name: 'zhifubao'
    },
    {
        name: 'zhifubao-circle-fill'
    },
    {
        name: 'weixin-fill'
    },
    {
        name: 'weixin-circle-fill'
    },
    {
        name: 'twitter'
    },
    {
        name: 'twitter-circle-fill'
    },
    {
        name: 'taobao'
    },
    {
        name: 'taobao-circle-fill'
    },
    {
        name: 'weibo'
    },
    {
        name: 'weibo-circle-fill'
    },
    {
        name: 'qq-fill'
    },
    {
        name: 'qq-circle-fill'
    },
    {
        name: 'moments'
    },
    {
        name: 'moments-circel-fill'
    },
    {
        name: 'qzone'
    },
    {
        name: 'qzone-circle-fill'
    },
    {
        name: 'facebook'
    },
    {
        name: 'facebook-circle-fill'
    },
    {
        name: 'baidu'
    },
    {
        name: 'baidu-circle-fill'
    },
    {
        name: 'zhuanfa'
    }
]);

const selectIcon = (name: string) => {
    // #ifdef H5
    if (typeof navigator !== 'undefined' && navigator.clipboard) {
        navigator.clipboard
            .writeText(name)
            .then(() => {
                uni.showToast({
                    title: '图标名称已复制',
                    icon: 'none'
                });
            })
            .catch(() => {
                uni.showToast({
                    title: '复制失败',
                    icon: 'none'
                });
            });
        return;
    }
    // #endif
    // #ifndef H5
    uni.setClipboardData({
        data: name,
        success: () => {
            uni.showToast({
                title: '图标名称已复制',
                icon: 'none'
            });
        }
    });
    // #endif
};
</script>

<style scoped lang="scss">
.wrap {
    padding: 24rpx;
}

.inner-wrap {
    display: flex;
    flex-wrap: wrap;
}
.u-icon-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 190rpx;
    flex: 0 0 33.33333333%;
    justify-content: center;
    overflow: hidden;
}

.u-icon-name {
    color: $u-tips-color;
    word-wrap: break-word;
    word-break: break-all;
    margin-top: 16rpx;
    font-size: 26rpx;
    padding: 0 14rpx;
    // 给定高度是为了图标名超出一行时，进行换行能有更好的效果
    height: 26rpx;
}
</style>
